package org.jupiter.blog.service.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.jupiter.blog.api.domain.JupiterUrlResource;

import java.util.List;

@Mapper
public interface JupiterUrlResourceMapper {

	int insert(JupiterUrlResource urlResource);

	JupiterUrlResource selectByUuid(@Param("uuid") String uuid);

	List<JupiterUrlResource> selectAll();

	int updateByUuidSelective(JupiterUrlResource urlResource);

	int deleteByUuid(@Param("uuid") String uuid);

	List<JupiterUrlResource> selectByPage(
			@Param("url") String url,
			@Param("method") String method,
			@Param("module") String module,
			@Param("offset") int offset,
			@Param("limit") int limit
	);

	long countByQuery(
			@Param("url") String url,
			@Param("method") String method,
			@Param("module") String module
	);

	List<JupiterUrlResource> selectByModule(@Param("module") String module);

	JupiterUrlResource selectByUrlAndMethod(
			@Param("url") String url,
			@Param("method") String method
	);

	List<JupiterUrlResource> selectActiveByModule(@Param("module") String module);

	List<JupiterUrlResource> selectActiveAll();
}
